Systems, methods and computer software for live video/audio broadcasting

ABSTRACT

One embodiment of the present invention is directed to a system for live video/audio broadcasting (e.g., game broadcasting). Another embodiment of the present invention is directed to a method for live video/audio broadcasting (e.g., game broadcasting). Another embodiment of the present invention is directed to computer software for live video/audio broadcasting (e.g., game broadcasting).

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/397,125, filed Feb. 15, 2012, which is a continuation of U.S. patentapplication Ser. No. 12/474,818, filed May 29, 2009, which claims thebenefit of U.S. Provisional Application Ser. No. 61/169,181, filed Apr.14, 2009 and U.S. Provisional Application Ser. No. 61/057,135, filed May29, 2008, each of which is incorporated herein by reference in theirentirety.

FIELD OF THE INVENTION

One embodiment of the present invention is directed to a system for livevideo/audio broadcasting (e.g., game broadcasting).

Another embodiment of the present invention is directed to a method forlive video/audio broadcasting (e.g., game broadcasting).

Another embodiment of the present invention is directed to computersoftware for live video/audio broadcasting (e.g., game broadcasting).

In one example, the live video/audio information may correspond to oneor more of (but not be limited to): (a) video and/or audio associatedwith a computer desktop; (b) video and/or audio associated with acomputer application; (c) video and/or audio associated with a computergame; and/or (d) video and/or audio associated with a feed from a camera(e.g., a webcam).

For the purposes of describing and claiming the present invention theterms “live” and “real-time” are intended to refer to computer systemsthat update information at essentially the same rate that they receiveinformation (that is, without substantial time lag).

For the purposes of describing and claiming the present invention theterm “desktop software” is intended to refer to software that isinstalled on a computer (as opposed, for example, to: software that isresident on a server computer and run on a client computer; or softwarethat runs inside of a web browser). In this regard, the term “desktopsoftware” encompasses software installed, for example, on a desktopcomputer or a laptop computer.

For the purposes of describing and claiming the present invention theterm “server software” is intended to refer to software that runs on aserver computer (as opposed, for example, to a client computer).

For the purposes of describing and claiming the present invention theterm “zoomed-in” is intended to refer to a view of a portion of animage.

For the purposes of describing and claiming the present invention theterm “non-zoomed-in” is intended to refer to a view of an entire image.

For the purposes of describing and claiming the present invention theterm “buffer” is intended to refer to solid-state memory (e.g. RAM).

For the purposes of describing and claiming the present invention theterm “module” (e.g., software module) is intended to refer to softwarein the form of a driver, a dynamic link library (“DLL”), an executable(“EXE”), or the like.

For the purposes of describing and claiming the present invention theterm “process” is intended to refer to an instance of a computer programthat is being executed.

For the purposes of describing and claiming the present invention theterm “capture device” is intended to refer to a hardware device that isassociated with a computer and effectively captures video and/or audiopackets originating from a second computing device.

BACKGROUND OF THE INVENTION

Video games are a major genre of entertainment. There is a growingmarket for games, gaming leagues and news stories. In this regard,techniques have arisen to document and record the happenings and events.Methods to enable recording of video games into movies include thefollowing:

-   -   1. A software module grabs shots of the screen, and sound data        from a sound card, to save them as frames in a movie (see FIG.        1); or    -   2. A hardware capture device is hooked between a game console        and a screen or a PC and

a screen, and the hardware capture device places the stream into a PC orother device for recoding as a movie (see FIG. 2).

Of note, video games are typically played either on a personal computeror on a dedicated game console. The term “game device” may sometimes beused herein to refer either to a game console or a personal computer onwhich games are played. A game device is typically connected to a 2Dscreen. To record the games into movies, a recording module may grabshots of the screen and save them as frames in a movie. The recordingmodule would also query the sound card driver iteratively to get datarelated to the currently played sound (see FIG. 1, showing game device101, game 103, graphic engine 105, audio engine 107, video card 109,audio card 111, recoding module 113 and movie file 115).

In the case where the recording is performed on a separate computer ordevice that is not the game device, the cable output of the game devicemay be connected to a capture device which reroutes the frames into thecomputer. This computer captures the frames and the audio (e.g., severaltimes a second) and saves the frames and audio data into a movie. Thecapture device could be installed as part of the computer, as a videocapture card or be a separate device altogether. The computer istypically a personal computer but could also be a device with InternetProtocol Broadcasting capabilities (see FIG. 2, showing game device 201,monitor 203, capture device 205, computer 207, recoding module 209 andmovie file 211).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a block diagram of a conventional gaming device.

FIG. 2 shows a block diagram of a conventional gaming device/capturedevice.

FIG. 3 shows a block diagram of a system according to an embodiment ofthe present invention.

FIG. 4 shows a block diagram of a system according to another embodimentof the present invention.

FIG. 5 shows a block diagram of a system according to another embodimentof the present invention.

FIG. 6 shows a block diagram of a system according to another embodimentof the present invention.

FIGS. 7A and 7B show example screenshots to reflect the effect of livevideo stream output from an application according to an embodiment ofthe present invention (in 3D mode showing, in each of FIGS. 7A and 7B, alive camera and live desktop capture).

FIGS. 8A and 8B show example screenshots to reflect the effect of livevideo stream output from an application according to an embodiment ofthe present invention (in 3D mode showing, in each of FIGS. 8A and 8B, alive camera and live game capture).

FIGS. 9A-9G show example screenshots for an application according to anembodiment of the present invention (in this example, for WindowsXP/Vista).

FIG. 10 shows a block diagram related primarily to video/audio packetsaccording to another embodiment of the present invention.

FIG. 11 shows a block diagram related to video/audio packets, memory,algorithms and various hardware/software according to another embodimentof the present invention.

FIG. 12 shows a block diagram of a system according to anotherembodiment of the present invention.

FIG. 13 shows a block diagram of a system according to anotherembodiment of the present invention.

Among those benefits and improvements that have been disclosed, otherobjects and advantages of this invention will become apparent from thefollowing description taken in conjunction with the accompanyingfigures. The figures constitute a part of this specification and includeillustrative embodiments of the present invention and illustrate variousobjects and features thereof.

DETAILED DESCRIPTION OF THE INVENTION

Detailed embodiments of the present invention are disclosed herein;however, it is to be understood that the disclosed embodiments aremerely illustrative of the invention that may be embodied in variousforms. In addition, each of the examples given in connection with thevarious embodiments of the invention is intended to be illustrative, andnot restrictive. Further, the figures are not necessarily to scale, somefeatures may be exaggerated to show details of particular components(and any data, size, material and similar details shown in the figuresare, of course, intended to be illustrative and not restrictive).Therefore, specific structural and functional details disclosed hereinare not to be interpreted as limiting, but merely as a representativebasis for teaching one skilled in the art to variously employ thepresent invention.

In one embodiment of the present invention a mechanism (e.g., softwareand/or hardware) may be provided to broadcast video games and/or movieslive. In this regard, as video games become similar to sports, livevideo game broadcasting may be important for several usages, including,but not limited to:

1. Enabling users to share with friends their experience essentiallywithout delay

2. Live, essentially no delay news feeds from virtual worlds events

3. Assistance to players during games and virtual battles

4. Communication between team players during games

In one embodiment of the present invention a mechanism (e.g., softwareand/or hardware) may be introduced before, after or instead of aconventional movie saving module. Instead of (or in addition to) savingthe movie to a file, various embodiments of the present invention mayprovide for a live broadcasting module (e.g., the video frames of thegame may be encoded using a movie encoder such as, for example, h264,h263, and/or other encoder which is aimed at reducing frame size). Theaudio may be encoded and interleaved into the movie, for example, usingindustry-standard encoders such as AAC, MP3 and/or any othercompressors. The game may then be broadcast as a stream of frames, usingInternet Broadcasting Protocols such as, for example, RTSP, RTP, UDP,TCP/IP and/or others. At the receiving side, standard and/or proprietarymethods could be used to view the live broadcast. In various examples,the game broadcast could either go directly to another computer, or to astreaming server which broadcasts it to several receiving clients. Atthe receiving side, a receiver may translate the byte stream into frameswhich are decoded into frames. In one example, the receiver and decodercan work as one integrated module.

One example describing the steps to broadcast live from video games isas follows:

-   -   1. A software driver obtains shots of the screen from computer        memory (e.g., directly from computer memory)    -   2. The software driver places the obtained shots of the screen        in a driver memory    -   3. A software module is connected to the driver memory    -   4. The software module encodes the frames from the driver memory    -   5. The software broadcasts the frames using Internet protocol(s)

With reference now to FIG. 3, it is seen that one embodiment of thepresent invention utilizes the following: game device 301, game 303,graphic engine 305, audio engine 307, video card 309, audio card 311,recoding module 313 (of note, in this example recording may be enabledand the “recording module” may operate to enable both recording and livebroadcasting; when recording is not enabled, the “recording module” 313would operate to enable live broadcasting only), Internet 317, receivercomputer(s) 319, IP receiver 321, decoder 323 and monitor 325).

In the case where a separate computer is doing the broadcasting, thecable output of the game device may be connected to a device whichreroutes the frames into this broadcast computer. The frames may betransferred into the broadcast computer using (for example) a hardwareport, a software driver may read the frames and put them in drivermemory and from that point the broadcasting may be performed (see FIG.4, showing game device 401, monitor 403, capture device, 405, computer407, recoding module 409 (again, of note, in this example recording maybe enabled and the “recording module” may operate to enable bothrecording and live broadcasting; when recording is not enabled, the“recording module” 313 would operate to enable live broadcasting only),encoder and IP broadcaster 415, Internet 417, receiver computer(s) 419,IP receiver 421, decoder 423 and monitor 425).

Of note, the broadcasting “computer” could be any device with, forexample, Internet Protocol Broadcasting capabilities.

Reference will now be made to a detailed example of a video gameimplementation of an Encoder and IP Broadcasting Module as an InstantMessenger (sometimes referred to herein as “IM”). Video games typicallypresent their visual by iteratively calculating positions of theirentities and then drawing them on the screen. This process happenstypically 20 times per seconds (and optimally more). The drawing of thescreen is typically done by a special video card which receives thepositions of the entities (in 2D or 3D space coordinates), their shapesand textures, and converts the information into a 2D picture by a set ofmathematical transformations. The 2D picture is typically stored at ascreen buffer which is presented at the 2D monitor that is used todisplay the game. The games typically include a graphic engine toconnect to the video card, such as (for example) DirectX or OpenGL (seeFIG. 5, showing that: game 501 may provide output to graphic engine 503,which may provide output to video card 505, which may provide output tomonitor 507).

A video game's audio, much like any other computerized audio, typicallyworks by encoding sounds as byte data and sending them to the soundcard.

To broadcast the game live, a software module according to an embodimentof the present invention needs to capture the 2D screen buffer and theaudio. To capture the screen buffer, after the graphic engine calls thevideo card driver to render the screen, a call may be made to theRecording Module. The Recording Module may call the video card and copythe screen buffer to its own buffer. This buffer may then be passed toan Encoder and IP Broadcaster module. The Encoder and IP Broadcastermodule may run (for example) in a separate memory address space, so thepassing of the buffer may need to be done through a shared memory. Forexample, the Encoder and IP Broadcaster module could be an InstantMessenger application. This Instant Messenger (IM) may operate byquerying a virtual camera driver, written specially to hold and pass thedata from the Recording Module to the Instant Messenger. This may beperformed several times a second, in order to broadcast an animatedmovie, live.

To capture and broadcast the audio, a module according to an embodimentof the present invention may query the audio card driver, for example,several times a second—each time bringing back sound data. This may bedone via a software layer such as, for example, WASAPI in Windows Vista,or via other drivers of the audio card, that supply channels to receivethe audio. If an IM is used to broadcast the game, the IM may use avirtual microphone driver to obtain the audio. This means that the IMmay select a special microphone that is not connected to an externalmicrophone (and not bringing audio from an external hardwaremicrophone), but is connected to the recording module of the audiobringing audio from the game (see FIG. 6, showing that one embodiment ofthe present invention utilizes the following: game device 601, game 603,graphic engine 605, audio engine 607, video card 609, audio card 611,recoding module 613 (of note, in this example recording may be enabledand the “recording module” may operate to enable both recording and livebroadcasting; when recording is not enabled, the “recording module” 613would operate to enable live broadcasting only), virtual webcam 614,virtual microphone 616, IM 618, Internet 617 and monitor 625).

Of note, the broadcasting could be done by any desired module and notonly an Instant Messenger. For example, many Internet browsers haveplug-ins such as Flash, that allows them to connect to a microphone anda camera. In addition, a dedicated broadcasting module could skip theneed for a web cam and a virtual microphone driver, and interfacedirectly with the recording module.

The recording module may connect between the graphic engine and thevideo card driver, but could (in another example) be connected directlyto the game. Additionally, the broadcasting could be performed from acomputer or device which is separate from the game device. In this case,a cable splitter may reroute game device output to a capture device andthe broadcasting device, as depicted in FIG. 4, for example.

Referring now to FIGS. 7A and 7B, these Figs. show example screenshotsto reflect the effect of live video stream output from an applicationaccording to an embodiment of the present invention (in 3D mode showinga live camera and live desktop capture). More particularly, an entireview is shown by 701, a live desktop view 703 forms part of entire view701 and a live camera view 705 forms another part of entire view 701.Further, an entire view is shown by 711, a live desktop view 713 formspart of entire view 711 and a live camera view 715 forms another part ofentire view 711.

Referring now to FIGS. 8A and 8B, these Figs. show example screenshotsto reflect the effect of live video stream output from an applicationaccording to an embodiment of the present invention (in 3D mode showinga live camera and live game capture). More particularly, an entire viewis shown by 801, a live game capture view 803 forms part of entire view801 and a live camera view 805 forms another part of entire view 801.Further, an entire view is shown by 811, a live game capture view 813forms part of entire view 811 and a live camera view 815 forms anotherpart of entire view 811.

Referring now to FIGS. 9A-9G, these Figs. show example screenshots foran application according to an embodiment of the present invention (inthis example, for Windows XP/Vista). More particularly, GUI 901 of FIG.9A shows an example log-in dialog box, GUI 903 of FIG. 9B shows anexample progress dialog box, GUI 905 of FIG. 9C shows an examplesettings dialog box, GUI 907 of FIG. 9D shows an example control dialogbox, GUI 909 of FIG. 9E shows another example settings dialog box, GUI911 of FIG. 9F shows another example settings dialog box and GUI 913 ofFIG. 9G shows another example settings dialog box.

Reference will now be made to another detailed example of animplementation according to an embodiment of the present invention. Inthis case, the functionality may include (but not be limited to) one ormore of:

Live video capture from:

-   -   Desktop    -   Camera (DV and/or webcam)    -   Game application

3D effects engine

-   -   dual screen mode    -   3d transitions

Live Encoding to

-   -   On2 Live Directshow SDK    -   FLV1    -   Render Window

Other Functionality

-   -   Desktop audio recording    -   Text overlay insertion for games    -   Desktop image capture    -   Asynchronous upload manager    -   Live recording to file    -   Editing of video files    -   URL capture from web browser

In other examples, embodiments of the present invention may provide fordesktop applications (e.g., written in C++ and/or Objective-C) for OSX(Mac) and/or for Windows XP/Vista.

In other examples, embodiments of the present invention may provide toeach end user a binary installer file for either OSX or Windows XP/Vistawhich installs the software.

Reference will now be made to another detailed example of animplementation according to an embodiment of the present invention. Inthis case, the technical specifications may include (but not be limitedto) one or more of:

Package description:

-   -   In one example, a C++ application that captures video from        digital cameras, desktop and/or PC games and records it locally        and/or broadcasts it using standard encoders.

Embedded:

-   -   In one example, the application may include an interface with        open source packages and other algorithms available in the        public domain. Packages may include (but not be limited to) one        or more of the following:        -   FFMPEG: Audio/video encoder for fly, mp4 (h264) formats        -   CxImage: Image processing package        -   FMOD: Audio and video editor        -   ZLib: compression utility        -   Taxi: game capture utility        -   Boost: code utilities        -   WTL8: code utilities        -   LAME: MP3 encoder

Dependencies:

-   -   In one example, the application may be dependent on one or more        of the following systems, packages and protocols in order to be        developed and run (including, but not limited to):        -   Run time:            -   Windows Vista Operating System and its included                libraries including, but not limited to: DirectX,                DirectShow, COM and others or Mac OSX and its included                libraries including, but not limited to: AppKit,                AudioToolbox, AudioUnit, Carbon, Cocoa, CoreAudio,                CoreAudioKit, CoreData, Foundation, OpenGL, QTKit,                QuartzCore, QuickTime and others        -   Wowza server for receiving internet broadcasts; Flash Media            Server for receiving internet broadcasts    -   In one example, the application may include and be dependent        upon one or more of the following protocols (including, but not        limited to):        -   Nelly moser        -   MP3        -   RTMP        -   H264        -   FLV1        -   On2        -   OpenGL    -   In one example, development packages may include (but not be        limited to) one or more of the following:        -   Advanced Installer        -   Visual C++        -   Objective C        -   STL        -   Turtoise    -   In one example, various packages and/or sub-packages may include        (but not be limited to) one or more of:        -   One package/sub-package to record, edit and/or broadcast            captured desktop screens, URLs and camera.        -   One package/sub-package to record and/or broadcast captured            games    -   In one example, one code line (that is, one set of code) may        encapsulate the two packages/sub-packages mentioned above

Reference will now be made to an example of interleaveing (or mixing)audio and video. Under this example, there are three main components(modules) that are involved:

(1) Audio capturer (see, e.g., audio capturer module 1001 of FIG. 10),the module that captures the audio from the external or internal audiodevice. This audio capturer module interfaces with an audio devicedriver, captures the audio and outputs the audio as “audio packet” data.In this example, the number of audio packets and their size is relatedto the capturing frequency and requested quality.

(2) Video capturer (see, e.g., video capturer module 1003 of FIG. 10),the module that captures the video from the screen or camera. This videocapturer module interfaces with the screen driver, captures the screenimages, and outputs the video as “video packet” data. In this example,the number of video packets and their size is related to the capturingfrequency and screen size.

(3) Broadcaster (see, e.g., broadcaster module 1005 of FIG. 10) is themodule that receives the audio and video packets, interleaves (or mixes)the audio and video packets together, and broadcasts the interleavedaudio and video packets as data packets (e.g., over the Internet). Inthis example, the format of the data packets and their order are definedby the desired broadcasting protocol (e.g., RTMP, RTP, proprietary).

Still referring to this example, the interleaving (or mixing) may becarried out iteratively at each of a plurality of time steps. In thisexample, at each time step the various modules perform processing asfollows:

1. Audio capturer (see FIG. 10):

-   -   a. Capture audio packet (using a process/mechanism described        elsewhere herein)    -   b. Timestamp the packet    -   c. Add packet to a queue    -   d. Add packet length (in time units) to an audio time length        variable        2. Video capturer (see FIG. 10):    -   a. Capture video packet (using a process/mechanism described        elsewhere herein)    -   b. Timestamp the packet    -   c. Add packet to a queue        3. Broadcaster (algorithm example 1—see FIG. 10):    -   a. Take first and second video packet    -   b. Encode video packets    -   c. Send first video packet    -   d. Loop on audio packets queue from less recent to most recent.        For every audio packet:        -   i. encode audio packet        -   ii. If            first_video_packet.timestamp−audio_packet.timestamp>epsilon            then discard audio packet (since audio packet is too old)        -   iii. If second video_packet.timestamp>audio_packet.timestamp            then send audio packet (in this example, epsilon for bullet            points ii. and iii. is defined empirically, and would            typically be around 100 ms)        -   iv. send remaining audio packets and video packet

In another example variant on the interleaving (or mixing) algorithm,the Broadcaster may operate as follows:

3. Broadcaster (algorithm example 2—see FIG. 10)

-   -   a. Take first and second video packet    -   b. Encode video packets    -   c. Send first video packet    -   d. If |first_video_packet.timestamp−second        video_packet.timestamp|>audio time length variable then        -   i. Loop on all audio packets. Expand each audio packet by            |first_video_packet.timestamp−second            video_packet.timestamp|/(audio time length)    -   e. If |first_video_packet.timestamp−second        video_packet.timestamp|<audio time length variable then        -   i. Loop on all audio packets. Shrink each audio packet by            (audio time length)/|first_video_packet.timestamp−second            video_packet.timestamp|    -   f. send audio packets and video packet

In this example, shrinking audio packets is done by:

-   1. Loop on all bytes in audio packet-   2. delete every X byte, where X is (audio time    length)/|first_video_packet.timestamp−second video_packet.timestamp|

In this example, expanding audio packets is done by:

-   1. Loop on all bytes in audio packet-   2. duplicate every X byte, where X is    |first_video_packet.timestamp−second video_packet.timestamp|/(audio    time length)

In another example, packets may be taken from the front of the queue(s)and input into the interleaving algorithm.

Referring now to another embodiment of the present invention a systemfor live broadcasting video information from a sender computer to areceiver computer via at least one server computer operative on anetwork is provided, comprising: desktop software stored on a computerreadable medium, wherein the desktop software is operative on the sendercomputer (see, e.g., one of sender computers 1201 ₁-1201 _(n) of FIG.12), wherein the desktop software: (1) obtains from the sender computera plurality of video packets of live video information corresponding toa series of images shown on a screen of the sender computer; and (2)provides the plurality of video packets to a network connectionassociated with the sender computer for broadcast via the network (see,e.g., Internet 1212 of FIG. 12 and/or Intranet 1209 of FIG. 12); whereinthe plurality of video packets provided to the network connectioncomprise: (a) a zoomed-in version of the series of images shown on thescreen of the sender computer when a user of the sender computerindicates to the desktop software to provide the zoomed-in version ofthe series of images shown on the screen of the sender computer; and (b)a non-zoomed-in version of the series of images shown on the screen ofthe sender computer when the user of the sender computer does notindicate to the desktop software to provide the zoomed-in version of theseries of images shown on the screen of the sender computer; and serversoftware stored on a computer readable medium, wherein the serversoftware is operative on the server computer (see, e.g., one or more ofserver computers 1203 ₁-1203 _(n) of FIG. 12), wherein the serversoftware: (1) receives the plurality of video packets broadcast from thenetwork connection of the sender computer; and (2) broadcasts, via thenetwork (see, e.g., Internet 1212 of FIG. 12 and/or Intranet 1211 ofFIG. 12), to the receiver computer (see, e.g., one of receiver computers1205 ₁-1205 _(n) of FIG. 12) video information corresponding to theplurality of video packets received by the server computer.

In one example, the steps carried out by the desktop software may becarried out in the order recited.

In another example, the steps carried out by the desktop software may becarried out in another order (e.g., any desired order).

In another example, the steps carried out by the server software may becarried out in the order recited.

In another example, the steps carried out by the server software may becarried out in another order (e.g., any desired order).

In another example, any desired number of server computers (one or more)may be utilized.

In another example, one or more server computers may communicate witheach other via the Internet (see, e.g., Internet 1212 of FIG. 12) and/orvia one or more intranets (see, e.g., intranet 1207 of FIG. 12).

In another example, any desired number of sender computers (one or more)may be utilized.

In another example, any desired number of receiver computers (one ormore) may be utilized.

In another example, the network may comprise at least one of (but notlimited to): (a) the Internet; and (b) an intranet.

In an another example, the network communication between one or moresender computers and one or more server computers may comprise theInternet and/or an intranet.

In an another example, the network communication between one or morereceiver computers and one or more server computers may comprise theInternet and/or an intranet.

In another example, one or more receiver computers may communicate withone or more server computers using a web browser.

In another example, a sender user using the desktop software may log-in(see, e.g., the log-in dialog 901 shown in the example of FIG. 9A).

In another example, a receiving user using a receiver computer maylog-in.

In another example, a server computer may provide to a receiver computerthe requested non-zoomed-in and/or non-zoomed-in version of the seriesof images shown on the screen of the sender computer.

In one example, the zooming-in (and/or zooming-out) may be done by thedesktop software and/or by the server software.

In another example, a computer may dynamically send (e.g., under usercontrol) various levels of zoom centered at various positions.

In another example, the live video information corresponding to theseries of images shown on the screen of the sender computer may compriseat least one of (but not be limited to): (a) a computer desktop (e.g.,associated with the sender computer); (b) a computer application (e.g.,associated with the sender computer); (c) a computer game (e.g.,associated with the sender computer); and (d) a feed from a camera(e.g., associated with the sender computer).

In another example, the camera may comprise a webcam (e.g., with amicrophone).

In another example, the desktop software may further: (3) obtain fromthe sender computer a plurality of audio packets of live audioinformation corresponding to the series of images shown on the screen ofthe sender computer; and (4) provide the plurality of audio packets tothe network connection associated with the sender computer for broadcastvia the network; and the server software may further: (5) receive theplurality of audio packets broadcast from the network connection of thesender computer; and (6) broadcast, via the network, to the receivercomputer audio information corresponding to the plurality of audiopackets received by the server computer.

In another example, the video and audio packets may be correlated.

In another example, the desktop software may comprise one or moresoftware modules.

In another example, the server software may comprise one or moresoftware modules.

In another example, the computer readable medium upon which each of thedesktop software and the server software is stored may be of the sametype.

In another example, the computer readable medium upon which each of thedesktop software and the server software is stored may be of a differenttype.

In another example, the computer readable medium upon which desktopsoftware is stored may comprise a disc drive (e.g., magnetic or optical)associated with a sender computer.

In another example, the computer readable medium upon which serversoftware is stored may comprise a disc drive (e.g., magnetic or optical)associated with a server computer.

As required, one or more video and/or audio packets may be dropped assender computer speed, server computer speed, receiver computer speedand/or network speed dictates.

In another embodiment of the present invention a system for livebroadcasting video information from at least one sender computer to atleast one receiver computer via at least one server computer operativeon a network is provided, comprising: first desktop software stored on acomputer readable medium, wherein the first desktop software isoperative on a first sender computer, wherein the first desktopsoftware: (1) obtains from the first sender computer (see, e.g., one ofsender computers 1201 ₁-1201 _(n) of FIG. 12) a plurality of packets oflive video information corresponding to a series of images shown on ascreen of the first sender computer; and (2) provides the plurality ofvideo packets to a network connection associated with the first sendercomputer for broadcast via the network (see, e.g., Internet 1212 of FIG.12 and/or Intranet 1209 of FIG. 12), wherein the plurality of videopackets provided to the network connection associated with the firstsender computer comprise: (a) a zoomed-in version of the series ofimages shown on the screen of the first sender computer when a user ofthe first sender computer indicates to the first desktop software toprovide the zoomed-in version of the series of images shown on thescreen of the first sender computer; and (b) a non-zoomed-in version ofthe series of images shown on the screen of the first sender computerwhen the user of the first sender computer does not indicate to thefirst desktop software to provide the zoomed-in version of the series ofimages shown on the screen of the first sender computer; second desktopsoftware stored on a computer readable medium, wherein the seconddesktop software is operative on a second sender computer (see, e.g.,one of sender computers 1201 ₁-1201 _(n) of FIG. 12), wherein the seconddesktop software: (1) obtains from the second sender computer aplurality of packets of live video information corresponding to a seriesof images shown on a screen of the second sender computer; and (2)provides the plurality of video packets to a network connectionassociated with the second sender computer for broadcast via the network(see, e.g., Internet 1212 of FIG. 12 and/or Intranet 1209 of FIG. 12),wherein the plurality of video packets provided to the networkconnection associated with the second sender computer comprise: (a) azoomed-in version of the series of images shown on the screen of thesecond sender computer when a user of the second sender computerindicates to the second desktop software to provide the zoomed-inversion of the series of images shown on the screen of the second sendercomputer; and (b) a non-zoomed-in version of the series of images shownon the screen of the second sender computer when the user of the secondsender computer does not indicate to the second desktop software toprovide the zoomed-in version of the series of images shown on thescreen of the second sender computer; server software stored on acomputer readable medium, wherein the server software is operative onthe server computer (see, e.g., one or more of server computers 1203₁-1203 _(n) of FIG. 12), wherein the server software: (1) receives theplurality of video packets broadcast from the network connection of thefirst sender computer; (2) receives the plurality of video packetsbroadcast from the network connection of the second sender computer; (3)receives via the network (see, e.g., Internet 1212 of FIG. 12 and/orIntranet 1211 of FIG. 12), from a first receiver computer (see, e.g.,one of receiver computers 1205 ₁-1205 _(n) of FIG. 12), a first channelinstruction; and (4) in response to the first channel instructionbroadcasts, via the network (see, e.g., Internet 1212 of FIG. 12 and/orIntranet 1211 of FIG. 12), to the first receiver computer videoinformation corresponding to either: (a) the plurality of video packetsreceived by the server computer that are associated with the firstsender computer; or (b) the plurality of video packets received by theserver computer that are associated with the second sender computer.

In one example, the channel instruction from the first receiver computermay be based upon a selection made by a user of the first receivercomputer from a choice of channels provided by the server computer tothe first receiver computer.

In another example, the choice of channels provided by the servercomputer to the first receiver computer may comprise at least a firstindicia corresponding to the first sender computer and at least a secondindicia corresponding to the second sender computer.

In another example, the choice of channels provided by the servercomputer to the first receiver computer may comprise at least a firstindicia corresponding to a user of the first sender computer and atleast a second indicia corresponding to a user of the second sendercomputer.

In another example, the server software may further: (7) receive via thenetwork, from a second receiver computer, a second channel instruction;(8) in response to the second channel instruction broadcast, via thenetwork, to the second receiver computer video information correspondingto either: (a) the plurality of video packets received by the servercomputer that are associated with the first sender computer; or (b) theplurality of video packets received by the server computer that areassociated with the second sender computer;

In another example, any given receiver computer may dynamical changechannels (that is, view/hear information associated with any selectedsender computer).

In another example, a server computer may provide identificationinformation regarding one or more sender computers to one or morereceiver computers to permit any given receiver computer to dynamicalchange channels (that is, view/hear information associated with anyselected sender computer).

In another example, information from any given sender computer may beviewed/heard by a user of any given receiver computer in a one-to-onerelationship (one sender computer, one receiver computer) In anotherexample, information from any given sender computer may be viewed/heardby a user of any given receiver computer in a one-to-many relationship(one sender computer many receiver computers; or many sender computers,one receiver computer).

In another example, the live video information corresponding to theseries of images shown on the screen of the first sender computer maycomprise at least one of (but not be limited to): (a) a computer desktop(associated with the first sender computer); (b) a computer application(associated with the first sender computer); (c) a computer game(associated with the first sender computer); and (d) a feed from acamera (associated with the first sender computer) and the live videoinformation corresponding to the series of images shown on the screen ofthe second sender computer may comprise at least one of (but not limitedto): (a) a computer desktop (associated with the second sendercomputer); (b) a computer application (associated with the second sendercomputer); (c) a computer game (associated with the second sendercomputer); and (d) a feed from a camera (associated with the secondsender computer).

In another example, the camera may comprise a webcam (e.g. with amicrophone).

In another example, the first desktop software may further: (3) obtainfrom the first sender computer a plurality of packets of live audioinformation corresponding to the series of images shown on the screen ofthe first sender computer; and (4) provide the plurality of audiopackets to the network connection associated with the first sendercomputer for broadcast via the network; the second desktop software mayfurther: (3) obtain from the second sender computer a plurality ofpackets of live audio information corresponding to the series of imagesshown on the screen of the second sender computer; and (4) provide theplurality of audio packets to the network connection associated with thesecond sender computer for broadcast via the network; the serversoftware may further: (7) receive the plurality of audio packetsbroadcast from the network connection of the first sender computer; (8)receive the plurality of audio packets broadcast from the networkconnection of the second sender computer; (9) in response to the firstchannel instruction broadcast, via the network, to the first receivercomputer audio information corresponding to either: (a) the plurality ofaudio packets received by the server computer that are associated withthe first sender computer; or (b) the plurality of audio packetsreceived by the server computer that are associated with the secondsender computer; and (10) in response to the second channel instructionbroadcast, via the network, to the second receiver computer audioinformation corresponding to either: (a) the plurality of audio packetsreceived by the server computer that are associated with the firstsender computer; or (b) the plurality of audio packets received by theserver computer that are associated with the second sender computer.

In another example, the video and audio packets maybe correlated (e.g.,with each other and across sender/receiver computers).

In another example, the first desktop software may be the same as thesecond desktop software.

In another example, the first desktop software may be the different fromthe second desktop software.

In another example, a server computer may provide to a receiver computerthe requested zoomed-in and/or non-zoomed-in version of the series ofimages shown on the screen of the sender computer.

In one example, the zooming-in (and/or zooming-out) may be done by thedesktop software and/or by the server software.

In another example, a computer may dynamically send (e.g., under usercontrol) various levels of zoom centered at various positions.

In another embodiment of the present invention a system for livebroadcasting video information from a sender computer to a receivercomputer via at least one server computer operative on a network isprovided, comprising: desktop software stored on a computer readablemedium, wherein the desktop software is operative on the sender computer(see, e.g., one of sender computers 1201 ₁-1201 _(n) of FIG. 12),wherein the desktop software: (1) obtains from the sender computer aplurality of packets of live video information corresponding to a seriesof images shown on a screen of the sender computer; (2) obtains from thesender computer a plurality of packets of live video informationcorresponding to a series of images from a camera; (3) converts theplurality of packets of live video information corresponding to theseries of images shown on the screen and the plurality of packets oflive video information corresponding to the series of images from thecamera into a single composite video stream in the form of a series ofvideo packets; and (4) provides the series of video packets to a networkconnection associated with the sender computer for broadcast via thenetwork (see, e.g., Internet 1212 of FIG. 12 and/or Intranet 1209 ofFIG. 12); and server software stored on a computer readable medium,wherein the server software is operative on the server computer (see,e.g., one or more of server computers 1203 ₁-1203 _(n) of FIG. 12),wherein the server software: (1) receives the series of video packetsbroadcast from the network connection of the sender computer; and (2)broadcasts, via the network (see, e.g., Internet 1212 of FIG. 12 and/orIntranet 1211 of FIG. 12), to the receiver computer (see, e.g., one ofreceiver computers 1205 ₁-1205 _(n) of FIG. 12), video informationcorresponding to the series of video packets received by the servercomputer (see, e.g., FIG. 7A showing a receiver computer view of abroadcast single composite video stream 701 comprising live videoinformation corresponding to a series of images shown on a screen of asender computer 703 and live video information corresponding to a seriesof images from a camera associated with the sender computer 705; seealso, e.g., FIG. 7B showing a receiver computer view of a broadcastsingle composite video stream 711 comprising live video informationcorresponding to a series of images shown on a screen of a sendercomputer 713 and live video information corresponding to a series ofimages from a camera associated with the sender computer 715; see also,e.g., FIG. 8A showing a receiver computer view of a broadcast singlecomposite video stream 801 comprising live video informationcorresponding to a series of images shown on a screen of a sendercomputer 803 and live video information corresponding to a series ofimages from a camera associated with the sender computer 805; see also,e.g., FIG. 8B showing a receiver computer view of broadcast singlecomposite video stream 811 comprising live video informationcorresponding to a series of images shown on a screen of a sendercomputer 813 and live video information corresponding to a series ofimages from a camera associated with the sender computer 815).

In one example, the network may comprise at least one of: (a) theInternet; and (b) an intranet.

In another example, a receiver computer may communicate with a servercomputer using a web browser.

In another example, the live video information corresponding to theseries of images shown on the screen of the sender computer may compriseat least one of (but not be limited to): (a) a computer desktop(associated with the sender computer); (b) a computer application(associated with the sender computer); (c) a computer game (associatedwith the sender computer); and (d) a feed from a camera (associated withthe sender computer).

In another example, the camera may comprise a webcam (e.g., with amicrophone).

In another example, the desktop software may further: (5) obtain fromthe sender computer a plurality of packets of live audio informationcorresponding to the series of images shown on the screen of the sendercomputer; and (6) provide the plurality of audio packets to the networkconnection associated with the sender computer for broadcast via thenetwork; and the server software may further: (3) receive the pluralityof audio packets broadcast from the network connection of the sendercomputer; and (2) broadcast, via the network, to the receiver computeraudio information corresponding to the plurality of audio packetsreceived by the server computer.

In another example, the video and audio packets may be correlated (e.g.,with each other, across screen and camera and across sender/receivercomputers).

In another example, the desktop software may further: (5) obtain fromthe sender computer a plurality of packets of live audio informationcorresponding to the series of images from the camera; and (6) providethe plurality of audio packets to the network connection associated withthe sender computer for broadcast via the network; and the serversoftware may further: (3) receive the plurality of audio packetsbroadcast from the network connection of the sender computer; and (2)broadcast, via the network, to the receiver computer audio informationcorresponding to the plurality of audio packets received by the servercomputer.

In another example, the video and audio packets may be correlated (e.g.,with each other, across screen and camera and across sender/receivercomputers).

In another embodiment of the present invention a system for livebroadcasting video information from at least one sender computer to atleast one receiver computer via at least one server computer operativeon a network is provided, comprising: first desktop software stored on acomputer readable medium, wherein the first desktop software isoperative on a first sender computer (see, e.g., one of sender computers1201 ₁-1201 _(n) of FIG. 12), wherein the first desktop software: (1)obtains from the first sender computer a plurality of packets of livevideo information corresponding to a series of images shown on a screenof the first sender computer; (2) obtains from the first sender computera plurality of packets of live video information corresponding to aseries of images from a camera associated with the first sendercomputer; (3) converts the plurality of packets of live videoinformation corresponding to the series of images shown on the screen ofthe first sender computer and the plurality of packets of live videoinformation corresponding to the series of images from the cameraassociated with the first sender computer into a single composite videostream in the form of a series of video packets; and (4) provides theseries of video packets to a network connection associated with thefirst sender computer for broadcast via the network (see, e.g., Internet1212 of FIG. 12 and/or Intranet 1209 of FIG. 12); second desktopsoftware stored on a computer readable medium, wherein the seconddesktop software is operative on a second sender computer (see, e.g.,one of sender computers 1201 ₁-1201 _(n) of FIG. 12), wherein the seconddesktop software: (1) obtains from the second sender computer aplurality of packets of live video information corresponding to a seriesof images shown on a screen of the second sender computer; (2) obtainsfrom the second sender computer a plurality of packets of live videoinformation corresponding to a series of images from a camera associatedwith the second sender computer; (3) converts the plurality of packetsof live video information corresponding to the series of images shown onthe screen of the second sender computer and the plurality of packets oflive video information corresponding to the series of images from thecamera associated with the second sender computer into a singlecomposite video stream in the form of a series of video packets; and (4)provides the series of video packets to a network connection associatedwith the second sender computer for broadcast via the network (see,e.g., Internet 1212 of FIG. 12 and/or Intranet 1209 of FIG. 12); andserver software stored on a computer readable medium, wherein the serversoftware is operative on the server computer (see, e.g., one or more ofserver computers 1203 ₁-1203 _(n) of FIG. 12), wherein the serversoftware: (1) receives the series of video packets broadcast from thenetwork connection of the first sender computer; (2) receives the seriesof video packets broadcast from the network connection of the secondsender computer; (3) receives via the network (see, e.g., Internet 1212of FIG. 12 and/or Intranet 1211 of FIG. 12), from a first receivercomputer (see, e.g., one of receiver computers 1205 ₁-1205 _(n) of FIG.12), a first channel instruction; and (4) in response to the firstchannel instruction broadcasts, via the network (see, e.g., Internet1212 of FIG. 12 and/or Intranet 1211 of FIG. 12), to the first receivercomputer video information corresponding to either: (a) the series ofvideo packets received by the server computer that are associated withthe first sender computer; or (b) the series of video packets receivedby the server computer that are associated with the second sendercomputer.

In one example, the first channel instruction from the first receivercomputer may be based upon a selection made by a user of the firstreceiver computer from a choice of channels provided by the servercomputer to the first receiver computer.

In another example, the choice of channels provided by the servercomputer to the first receiver computer may comprise at least a firstindicia corresponding to the first sender computer and at least a secondindicia corresponding to the second sender computer.

In another example, the choice of channels provided by the servercomputer to the first receiver computer may comprise at least a firstindicia corresponding to the a user of the first sender computer and atleast a second indicia corresponding to a user of the second sendercomputer.

In another example, the server software may further: (5) receive via thenetwork, from a second receiver computer, a second channel instruction;(6) in response to the second channel instruction broadcast, via thenetwork, to the second receiver computer video information correspondingto either: (a) the series of video packets received by the servercomputer that are associated with the first sender computer; or (b) theseries of video packets received by the server computer that areassociated with the second sender computer;

In another example the network may comprise at least one of: (a) theInternet; and (b) an intranet.

In another example, the first receiver computer may communicate with theserver computer using a web browser.

In another example, the live video information corresponding to theseries of images shown on the screen of the first sender computer maycomprise at least one of: (a) a computer desktop (associated with thefirst sender computer); (b) a computer application (associated with thefirst sender computer); (c) a computer game (associated with the firstsender computer); and (d) a feed from a camera (associated with thefirst sender computer) and the live video information corresponding tothe series of images shown on the screen of the second sender computermay comprise at least one of: (a) a computer desktop (associated withthe second sender computer); (b) a computer application (associated withthe second sender computer); (c) a computer game (associated with thesecond sender computer); and (d) a feed from a camera (associated withthe second sender computer).

In another example, the camera may comprise a webcam (e.g., with amicrophone).

In another example, the first desktop software may further: (5) obtainfrom the first sender computer a plurality of packets of live audioinformation corresponding to the series of images shown on the screen ofthe first sender computer; and (6) provide the plurality of audiopackets associated with the first sender computer to the networkconnection associated with the first sender computer for broadcast viathe network; the server software may further: (4) receive the pluralityof audio packets broadcast from the network connection of the firstsender computer; and (5) broadcast, via the network, to the firstreceiver computer audio information corresponding to the plurality ofaudio packets associated with the first sender computer received by theserver computer.

In another example, the first desktop software may further: (5) obtainfrom the first sender computer a plurality of packets of live audioinformation corresponding to the series of images from the camera of thefirst sender computer; and (6) provide the plurality of audio packetsassociated with the first sender computer to the network connectionassociated with the first sender computer for broadcast via the network;the server software may further: (4) receive the plurality of audiopackets broadcast from the network connection of the first sendercomputer; and (5) broadcast, via the network, to the first receivercomputer audio information corresponding to the plurality of audiopackets associated with the first sender computer received by the servercomputer.

In another embodiment of the present invention a system for livebroadcasting video information from a sender computer is provided,comprising: a first software module (see, e.g., module 1101 of FIG. 11),wherein the first software module iteratively obtains from a screenbuffer associated with the sender computer (e.g., via devices and/orcapture cards 1100) a plurality of frames of video information shown ona screen of the sender computer and wherein the first software moduleiteratively places the plurality of frames in a first software modulebuffer (see, e.g., memory 1101A of FIG. 11); a second software module(see, e.g., 1103 of FIG. 11) that operatively communicates with thefirst software module buffer, wherein the second software module encodesthe frames from the first software module buffer; and a broadcastsoftware module that operatively communicates with the second softwaremodule, wherein the broadcast module broadcasts the frames using atleast one Internet protocol.

In one example, the video information shown on a screen of the sendercomputer may correspond to one or more of (but not be limited to): (a)video associated with a computer desktop; (b) video associated with acomputer application; (c) video associated with a computer game; and/or(d) video associated with a feed from a camera (e.g., a webcam).

In another example, the first software module may iteratively obtaindirectly from the screen buffer associated with the sender computer theplurality of frames of video information shown on the screen of thesender computer.

In another example, each of the first software module, the secondsoftware module and the broadcast software module may be separate fromone another.

In another example, at least the first software module and the secondsoftware module may be combined.

In another example, at least the second software module and thebroadcast software module may be combined.

In another example, each of the first software module, the secondsoftware module and the broadcast software module may be combined.

In another example, audio packets may be placed in a buffer (see, e.g.,memory 1101B of FIG. 11).

In another example, audio packets may be encoded and/or interleaved withvideo packets (see, e.g., FIG. 11).

In another example, the screen buffer may comprise a RAM memory.

In another example, the first software module buffer may comprise a RAMmemory.

In another example, the screen buffer may comprise shared memory for thefirst software module and the second software module (see, e.g., FIG.11).

In another embodiment of the present invention a method for livebroadcasting video information from a sender computer may be provided,comprising: iteratively obtaining from a screen buffer associated withthe sender computer a plurality of frames of video information shown ona screen of the sender computer; iteratively placing the plurality offrames in a software module buffer; encoding the frames from thesoftware module buffer; and broadcasting the encoded frames using atleast one Internet protocol.

In one example, the video information shown on a screen of the sendercomputer may correspond to one or more of (but not be limited to): (a)video associated with a computer desktop; (b) video associated with acomputer application; (c) video associated with a computer game; and/or(d) video associated with a feed from a camera (e.g., a webcam).

In another example, the frames of video information shown on the screenof the sender computer may be iteratively obtained directly from thescreen buffer associated with the sender computer.

In another example, the steps may be carried out in the order recited.

In another embodiment of the present invention a system for livebroadcasting video information associated with a viewed computer screenfrom a sender computer is provided, comprising: a first software module(see, e.g., module 1101 of FIG. 11), wherein the first software moduleiteratively obtains from a capture device (e.g., via devices and/orcapture cards 1100) associated with the sender computer a plurality offrames of video information shown on the screen of the viewed computerand wherein the first software module iteratively places the pluralityof frames in a first software module buffer (see, e.g., memory 1101A ofFIG. 11); a second software module see, e.g., 1103 of FIG. 11) thatoperatively communicates with the first software module buffer, whereinthe second software module encodes the frames from the first softwaremodule buffer; and a broadcast software module that operativelycommunicates with the second software module, wherein the broadcastsoftware module broadcasts the frames using at least one Internetprotocol.

In one example, the video information shown on a screen of the sendercomputer may correspond to one or more of (but not be limited to): (a)video associated with a computer desktop; (b) video associated with acomputer application; (c) video associated with a computer game; and/or(d) video associated with a feed from a camera (e.g., a webcam).

In another example, each of the first software module, the secondsoftware module and the broadcast software module may be separate fromone another.

In another example, at least the first software module and the secondsoftware module may be combined.

In another example, at least the second software module and thebroadcast software module may be combined.

In another example, each of the first software module, the secondsoftware module and the broadcast module may be combined.

In another embodiment of the present invention a method for livebroadcasting video information associated with a viewed computer screenfrom a sender computer is provided, comprising: iteratively obtainingfrom a capture device associated with the sender computer a plurality offrames of video information shown on the screen of the viewed computer;iteratively placing the plurality of frames in a software module buffer;encoding the frames from the software module buffer; and broadcastingthe encoded frames using at least one Internet protocol.

In one example, the video information shown on a screen of the sendercomputer may correspond to one or more of (but not be limited to): (a)video associated with a computer desktop; (b) video associated with acomputer application; (c) video associated with a computer game; and/or(d) video associated with a feed from a camera (e.g., a webcam).

In another example, the steps may be carried out in the order recited.

Referring now to FIG. 13, another embodiment of the present invention isshown (as seen in this FIG. 13, this embodiment relates to gamebroadcasting using an application comprising a DLL and an EXE).

More particularly, a mechanism for game broadcasting according to thisembodiment may be carried out as follows (of note, the motivation to docode insertion, as described in steps 4 and 5, is because using othermethods of grabbing the screen can produce errors, like black screens,incomplete drawn screens and others, thus essentially rendering suchother methods useless):

-   -   1. As mentioned above, the application according to this        embodiment comprises an EXE and a DLL (see, e.g., DLL 1301        (sometimes referred to as “Hook DLL”) and EXE 1303 of FIG. 13)    -   2. The DLL 1301 registers itself at the operating system to        receive messages upon events happening at other programs (this        is called hooking). Specifically, the DLL 1301 in this example        will take action when:        -   1. a window is created or receives focus and/or        -   2. some keyboard keys are pressed (e.g., predefined keys            combinations)    -   3. A game (see, e.g., Game 1305 of FIG. 13) starts, creates a        window and this window receives focus    -   4. The Hook DLL 1301 is loaded into and called in the context of        the game process memory space    -   5. When Hook DLL 1301 is called, Hook DLL 1301 identifies: (a)        whether this is a game; and (2) what version of graphics engine        (e.g., DirectX/OpenGL—see, e.g., DirectX/OpenGL drivers 1306))        does the game use. If it is a game with detectable graphics        engine, Hook DLL 1301 inserts code that reroutes the main        drawing methods function into the Hook DLL's own replacement        method. In this example, the code insertion is done by the        following sub-steps:        -   1. The Hook DLL 1301 calculates the memory address of the            main drawing methods of the graphics engine        -   2. The Hook DLL 1301 replaces the first original bytes of            each method with bytes that represent an instruction to jump            to the DLL's own replacement method. This will reroute any            executing program that reaches those bytes, to the Hook            DLL's own replacement methods        -   3. The Hook DLL's replacement method can now perform tasks            like, for example, capturing the screen, presenting graphics            and more (detailed below)        -   4. The Hook DLL 1301 also would call the engine's original            drawing method, so the functionality of the game will remain            the same    -   6. The EXE 1303 opens a window with user interface elements        (e.g., buttons) for Start/Stop broadcasting, and for settings        configuration    -   7. The DLL 1301 presents some graphic user interface on the        screen, layered on top of the game. The layered graphic user        interface may include (but not be limited to), for example:        company logo, statistics (e.g., frame rate, time), hot key        instructions (e.g., “press Ctrl+F1 to start”), etc    -   8. When a predefined keys combination is pressed, or when the UI        button is pressed to Start Broadcasting, the following starts to        happen in a loop (the frequency of which depends (in this        example) on the game frame rate and the game device        capabilities):        -   1. The DLL 1301:            -   1. captures the video from the screen buffer (see, e.g.,                video card 1307A and screen buffer 1307B of FIG. 13),            -   2. puts the captured video in a shared memory area (see,                e.g., shared memory 1309 of FIG. 13)            -   3. sends a notification to the EXE 1303        -   2. The EXE 1303:            -   1. grabs audio data from the audio card (see, e.g.,                audio device 1311 of FIG. 13)            -   2. takes the screen from the shared memory buffer 1309                (video frame)            -   3. compresses the video frame            -   4. interleaves the audio and the video frame (in another                example, the order of steps 3 and 4 (compress,                interleave) may be interchanged)    -   9. When a key is pressed to Stop Broadcasting, all the above        stops.

In another embodiment of the present invention a system for livebroadcasting video information from a sender computer is provided,comprising: a first software module (see, e.g., DLL 1301 of FIG. 13),wherein the first software module is inserted into a memory space of afirst process, wherein the first software module obtains a handle to ascreen buffer (see, e.g., video card 1307A including screen buffer 1307Bof FIG. 13) associated with the sender computer, wherein the firstsoftware module iteratively obtains a plurality of frames of videoinformation shown on a screen of the sender computer and wherein thefirst software module iteratively places the obtained frames in a firstsoftware module buffer (see, e.g., shared memory 1309 of FIG. 13); asecond software module (see, e.g., encoder—module number two 1303A ofFIG. 13) that resides inside a second process, and that operativelycommunicates with the first software module buffer, wherein the secondsoftware module encodes the frames from the first software modulebuffer; a third software module (see, e.g., audio capture—module numberthree 1303B of FIG. 13), wherein the third software module obtains aplurality of audio frames from an audio device (see, e.g., audio device1311 of FIG. 13) of the sender computer; and a broadcast software module(see, e.g., broadcaster module 1303C of FIG. 13) that operativelycommunicates with the second and third software modules, wherein thebroadcast module interleaves the video and audio frames from the secondsoftware module and the third software module and broadcasts theinterleaved frames using at least one Internet protocol, wherein thefirst process is distinct from the second process. In one example, thebroadcast may be via the Internet to server 1313. In another example,EXE 1303 may comprise encoder—module number two 1303A, audiocapture—module number three 1303B and broadcaster module 1303C.

In another example, the first software module may iteratively obtaindirectly from the screen buffer associated with the sender computer theplurality of frames of video information shown on the screen of thesender computer.

In another example, the first software module may send text and/orgraphics to the screen buffer.

In another example, each of the first software module, the secondsoftware module, the third software module and the broadcast softwaremodule may be separate from one another.

In another example, at least the first software module and the secondsoftware module may be combined.

In another example, at least the second software module and thebroadcast software module may be combined.

In another example, at least the first software module, the secondsoftware module and the broadcast software module may be combined.

In another example, at least the first software module, the secondsoftware module, and the third software module may be combined.

In another example, at least the second software module, the thirdsoftware module and the broadcast software module may be combined (see,e.g., FIG. 13 showing that EXE 1303 may comprise encoder—module numbertwo 1303A, audio capture—module number three 1303B and broadcastermodule 1303C).

In another example, at least the second software module and the thirdsoftware module may be combined.

In another example, at least the third software module and the broadcastsoftware module may be combined.

In another example, the first process may comprise a game.

In another embodiment of the present invention a method for livebroadcasting from a sender computer video information associated with aviewed device screen is provided, comprising (see, e.g. FIG. 11):iteratively obtaining from at least one capture device 1100 associatedwith the sender computer a plurality of frames of video informationshown on the screen of the viewed device and a plurality of frames ofcorresponding audio data; iteratively placing the obtained frames insoftware module buffers 1101A,1101B; encoding the frames from thesoftware module buffers; interleaving the audio and the video frames;and broadcasting the encoded frames using at least one Internetprotocol.

In another example, one capture device may be associated with videoinformation and another capture device may be associated with audiodata.

In another example, the steps may be carried out in the order recited.

As described herein, various embodiments of the present invention mayenable simple/high quality live broadcasting from cameras, desktopand/or games.

Further, as described herein, various embodiments of the presentinvention may allow live broadcast of video games using the Internetand/or other broadcasting (e.g., digital broadcasting) methods.

Further, as described herein, various embodiments of the presentinvention may provide for: (1) Camera broadcasting (e.g., associatedwith one or more cameras); (2) Screen broadcasting (e.g., associatedwith one or more screens); and/or (3) Game broadcasting (e.g.,associated with one or more games).

In another example, the software may be a desktop software product(e.g., such as marketed under the name PROCASTER).

In another example, the present invention may be used to reach a liveaudience in real-time (e.g., on the MOGULUS network).

In another example, the present invention may be implemented fully orpartially using a FLASH-based technology.

In another embodiment of the present invention one or more video/audiostreams may be recordable and/or archivable (various embodiments of thepresent invention do not necessarily exclude recording).

In another embodiment of the present invention any desired number ofusers may be provided for (e.g., any desired number of users operatingsender computers and any desired number of users operating receivercomputers).

In another embodiment of the present invention one or more spectators(e.g. using one or more receiver computers) may watch one or more gameplayers (e.g., using one or more sender computers).

In another embodiment of the present invention, chat (e.g., in-gamechat) may be provided.

As described herein, various embodiments of the present invention mayprovide for live mixing of audio and video (e.g. screen mixed withcamera; game mixed with camera). In various examples, high performancemay be provided and/or standard video technology may be utilized (e.g.,standard audio and/or video encoders).

Further, certain embodiments of the present invention (e.g., zoomembodiments) may be achievable due at least in part to broadcasting (bysender computer and/or server computer) of frames as 2-D images.

Further, various embodiments of the present invention may be applied touse in association with one or more computers and/or one or more gamedevices (e.g., video game consoles).

In another embodiment of the present invention a system for livebroadcasting video information from a sender computer to a receivercomputer via at least one server computer operative on a network isprovided, comprising: desktop software stored on a computer readablemedium, wherein the desktop software is operative on the sendercomputer, wherein the desktop software: (1) obtains from the sendercomputer a plurality of video packets of live video informationcorresponding to a series of images shown on a screen of the sendercomputer; and (2) provides the plurality of video packets to a networkconnection associated with the sender computer for broadcast via thenetwork; and server software stored on a computer readable medium,wherein the server software is operative on the server computer, whereinthe server software: (1) receives the plurality of video packetsbroadcast from the network connection of the sender computer; (2)broadcasts, via the network, to the receiver computer video informationcorresponding to the plurality of video packets received by the servercomputer; (3) receives, via the network, at least a first zoominstruction from the receiver computer to provide to the receivercomputer a zoomed-in version of the series of images shown on the screenof the sender computer; and (4) in response to the zoom instructionbroadcasts, via the network, to the receiver computer the zoomed-inversion of the series of images shown on the screen of the sendercomputer.

In one example, network may comprise at least one of: (a) the Internet;and (b) an intranet.

In another example, the receiver computer may communicate with theserver computer using a web browser.

In another example, the server computer may receive from the receivercomputer, after the receipt by the server computer of the first zoominstruction, a second zoom instruction, wherein the second zoominstruction comprises an instruction to provide to the receiver computera non-zoomed-in version of the series of images shown on the screen ofthe sender computer.

In another example, the live video information corresponding to theseries of images shown on the screen of the sender computer may compriseat least one of (but not be limited to): (a) a computer desktop; (b) acomputer application; (c) a computer game; and (d) a feed from a camera.

In another example, the desktop software may further: (3) obtain fromthe sender computer a plurality of audio packets of live audioinformation corresponding to the series of images shown on the screen ofthe sender computer; and (4) provide the plurality of audio packets tothe network connection associated with the sender computer for broadcastvia the network; and the server software may further: (5) receive theplurality of audio packets broadcast from the network connection of thesender computer; and (6) broadcast, via the network, to the receivercomputer audio information corresponding to the plurality of audiopackets received by the server computer.

In another example, a server computer may receive from a receivercomputer, after the receipt by the server computer of the first zoominstruction, a second zoom instruction, wherein the second instructionmay comprise an instruction to provide to the receiver computer anon-zoomed-in version of the series of images shown on the screen of thesender computer.

In another example, and the server computer may, of course, respond withthe instructed views.

In another embodiment, a system for live broadcasting video informationfrom at least one sender computer to at least one receiver computer viaat least one server computer operative on a network is provided,comprising: first desktop software stored on a computer readable medium,wherein the first desktop software is operative on a first sendercomputer, wherein the first desktop software: (1) obtains from the firstsender computer a plurality of packets of live video informationcorresponding to a series of images shown on a screen of the firstsender computer; and (2) provides the plurality of video packets to anetwork connection associated with the first sender computer forbroadcast via the network;

second desktop software stored on a computer readable medium, whereinthe second desktop software is operative on a second sender computer,wherein the second desktop software: (1) obtains from the second sendercomputer a plurality of packets of live video information correspondingto a series of images shown on a screen of the second sender computer;and (2) provides the plurality of video packets to a network connectionassociated with the second sender computer for broadcast via thenetwork; server software stored on a computer readable medium, whereinthe server software is operative on the server computer, wherein theserver software: (1) receives the plurality of video packets broadcastfrom the network connection of the first sender computer; (2) receivesthe plurality of video packets broadcast from the network connection ofthe second sender computer; (3) receives via the network, from a firstreceiver computer, a first channel instruction; (4) in response to thefirst channel instruction broadcasts, via the network, to the firstreceiver computer video information corresponding to either: (a) theplurality of video packets received by the server computer that areassociated with the first sender computer; or (b) the plurality of videopackets received by the server computer that are associated with thesecond sender computer; (5) receives, via the network, at least a firstinstruction from the first receiver computer to provide to the receivercomputer a zoomed-in version of the series of images shown on the screenof the sender computer; and (6) in response to the instructionbroadcasts, via the network, to the first receiver computer thezoomed-in version of the video information.

In one example, the first channel instruction from the first receivercomputer may be based upon a selection made by a user of the firstreceiver computer from a choice of channels provided by the servercomputer to the first receiver computer.

In another example, the choice of channels provided by the servercomputer to the first receiver computer may comprise at least a firstindicia corresponding to the first sender computer and at least a secondindicia corresponding to the second sender computer.

In another example, the choice of channels provided by the servercomputer to the first receiver computer may comprise at least a firstindicia corresponding to a user of the first sender computer and atleast a second indicia corresponding to a user of the second sendercomputer.

In another example, the server software may further: (7) receive via thenetwork, from a second receiver computer, a second channel instruction;(8) in response to the second channel instruction broadcast, via thenetwork, to the second receiver computer video information correspondingto either: (a) the plurality of video packets received by the servercomputer that are associated with the first sender computer; or (b) theplurality of video packets received by the server computer that areassociated with the second sender computer;

In another example, the network comprises at least one of: (a) theInternet; and (b) an intranet.

In another example, the first receiver computer may communicate with theserver computer using a web browser.

In another example, the server computer may receive from the firstreceiver computer, after the receipt by the server computer of the firstzoom instruction, a second zoom instruction, wherein the second zoominstruction comprises an instruction to provide to the first receivercomputer a non-zoomed-in version of the series of images shown on thescreen of the sender computer.

In another example, the server software may receive, via the network, atleast a first zoom instruction from the second receiver computer toprovide to the second receiver computer a zoomed-in version of theseries of images shown on the screen of the second sender computer; andin response to the first zoom instruction may broadcast, via thenetwork, to the second receiver computer the zoomed-in version of thevideo information.

In another example, the live video information corresponding to theseries of images shown on the screen of the first sender computercomprises at least one of (but not be limited to): (a) a computerdesktop; (b) a computer application; (c) a computer game; and (d) a feedfrom a camera and wherein the live video information corresponding tothe series of images shown on the screen of the second sender computercomprises at least one of: (a) a computer desktop; (b) a computerapplication; (c) a computer game; and (d) a feed from a camera.

In another example, the first desktop software may further: (3) obtainfrom the first sender computer a plurality of packets of live audioinformation corresponding to the series of images shown on the screen ofthe first sender computer; and (4) provide the plurality of audiopackets to the network connection associated with the first sendercomputer for broadcast via the network; the second desktop software mayfurther: (3) obtain from the second sender computer a plurality ofpackets of live audio information corresponding to the series of imagesshown on the screen of the second sender computer; and (4) provide theplurality of audio packets to the network connection associated with thesecond sender computer for broadcast via the network; the serversoftware may further: (9) receive the plurality of audio packetsbroadcast from the network connection of the first sender computer; (10)receive the plurality of audio packets broadcast from the networkconnection of the second sender computer; (11) in response to the firstchannel instruction broadcast, via the network, to the first receivercomputer audio information corresponding to either: (a) the plurality ofaudio packets received by the server computer that are associated withthe first sender computer; or (b) the plurality of audio packetsreceived by the server computer that are associated with the secondsender computer; and (12) in response to the second channel instructionbroadcast, via the network, to the second receiver computer audioinformation corresponding to either: (a) the plurality of audio packetsreceived by the server computer that are associated with the firstsender computer; or (b) the plurality of audio packets received by theserver computer that are associated with the second sender computer.

In another example, and the server computer may, of course, respond withthe instructed views.

For the purposes of this disclosure, a computer readable medium is amedium that stores computer data/instructions in machine readable form.By way of example, and not limitation, a computer readable medium cancomprise computer storage media as well as communication media, methodsor signals. Computer storage media includes volatile and non-volatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer-readableinstructions, data structures, program modules or other data. Computerstorage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM,flash memory or other solid state memory technology; CD-ROM, DVD, orother optical storage; cassettes, tape, disk, or other magnetic storagedevices; or any other medium which can be used to tangibly store thedesired information and which can be accessed by the computer.

Further, the present invention may, of course, be implemented using anyappropriate computer readable medium, computer hardware and/or computersoftware. In this regard, those of ordinary skill in the art are wellversed in the type of computer hardware that may be used (e.g., one ormore mainframes, one or more mini-computers, one ore more personalcomputers (“PC”), one or more networks (e.g., an intranet and/or theInternet)), the type of computer programming techniques that may be used(e.g., object oriented programming), and the type of computerprogramming languages that may be used (e.g., C++, Basic). Theaforementioned examples are, of course, illustrative and notrestrictive.

Of course, any embodiment/example described herein (or any feature orfeatures of any embodiment/example described herein) may be combinedwith any other embodiment/example described herein (or any feature orfeatures of any such other embodiment/example described herein).

While a number of embodiments/examples of the present invention havebeen described, it is understood that these embodiments/examples areillustrative only, and not restrictive, and that many modifications maybecome apparent to those of ordinary skill in the art. For example,certain methods may be “computer implementable” or “computerimplemented.” In this regard, it is noted that while such methods can beimplemented using a computer, the methods do not necessarily have to beimplemented using a computer. Also, to the extent that such methods areimplemented using a computer, not every step must necessarily beimplemented using a computer. Further, any steps described herein may becarried out in any desired order (and any steps may be added and/ordeleted).

What is claimed is:
 1. A system for live broadcasting video informationfrom a sender computer to a receiver computer via at least one servercomputer operative on a network, comprising: desktop software stored ona computer readable medium, wherein the desktop software is operative onthe sender computer, wherein the desktop software: (1) obtains from thesender computer a plurality of video packets of live video informationcorresponding to a series of images shown on a screen of the sendercomputer; and (2) provides the plurality of video packets to a networkconnection associated with the sender computer for broadcast via thenetwork, wherein the plurality of video packets provided to the networkconnection comprise: (a) a zoomed-in version of the series of imagesshown on the screen of the sender computer when a user of the sendercomputer indicates to the desktop software to provide the zoomed-inversion of the series of images shown on the screen of the sendercomputer; and (b) a non-zoomed-in version of the series of images shownon the screen of the sender computer when the user of the sendercomputer does not indicate to the desktop software to provide thezoomed-in version of the series of images shown on the screen of thesender computer; and server software stored on a computer readablemedium, wherein the server software is operative on the server computer,wherein the server software: (1) receives the plurality of video packetsbroadcast from the network connection of the sender computer; and (2)broadcasts, via the network, to the receiver computer video informationcorresponding to the plurality of video packets received by the servercomputer.
 2. The system of claim 1, wherein the network comprises atleast one of: (a) the Internet; and (b) an intranet.
 3. The system ofclaim 1, wherein the receiver computer communicates with the servercomputer using a web browser.
 4. The system of claim 1, wherein the livevideo information corresponding to the series of images shown on thescreen of the sender computer comprises at least one of: (a) a computerdesktop; (b) a computer application; (c) a computer game; and (d) a feedfrom a camera.
 5. The system of claim 1, wherein: the desktop softwarefurther: (3) obtains from the sender computer a plurality of audiopackets of live audio information corresponding to the series of imagesshown on the screen of the sender computer; and (4) provides theplurality of audio packets to the network connection associated with thesender computer for broadcast via the network; and the server softwarefurther: (3) receives the plurality of audio packets broadcast from thenetwork connection of the sender computer; and (4) broadcasts, via thenetwork, to the receiver computer audio information corresponding to theplurality of audio packets received by the server computer.
 6. A systemfor live broadcasting video information from at least one sendercomputer to at least one receiver computer via at least one servercomputer operative on a network, comprising: first desktop softwarestored on a computer readable medium, wherein the first desktop softwareis operative on a first sender computer, wherein the first desktopsoftware: (1) obtains from the first sender computer a plurality ofpackets of live video information corresponding to a series of imagesshown on a screen of the first sender computer; and (2) provides theplurality of video packets to a network connection associated with thefirst sender computer for broadcast via the network, wherein theplurality of video packets provided to the network connection associatedwith the first sender computer comprise: (a) a zoomed-in version of theseries of images shown on the screen of the first sender computer when auser of the first sender computer indicates to the first desktopsoftware to provide the zoomed-in version of the series of images shownon the screen of the first sender computer; and (b) a non-zoomed-inversion of the series of images shown on the screen of the first sendercomputer when the user of the first sender computer does not indicate tothe first desktop software to provide the zoomed-in version of theseries of images shown on the screen of the first sender computer;second desktop software stored on a computer readable medium, whereinthe second desktop software is operative on a second sender computer,wherein the second desktop software: (1) obtains from the second sendercomputer a plurality of packets of live video information correspondingto a series of images shown on a screen of the second sender computer;and (2) provides the plurality of video packets to a network connectionassociated with the second sender computer for broadcast via thenetwork, wherein the plurality of video packets provided to the networkconnection associated with the second sender computer comprise: (a) azoomed-in version of the series of images shown on the screen of thesecond sender computer when a user of the second sender computerindicates to the second desktop software to provide the zoomed-inversion of the series of images shown on the screen of the second sendercomputer; and (b) a non-zoomed-in version of the series of images shownon the screen of the second sender computer when the user of the secondsender computer does not indicate to the second desktop software toprovide the zoomed-in version of the series of images shown on thescreen of the second sender computer; server software stored on acomputer readable medium, wherein the server software is operative onthe server computer, wherein the server software: (1) receives theplurality of video packets broadcast from the network connection of thefirst sender computer; (2) receives the plurality of video packetsbroadcast from the network connection of the second sender computer; (3)receives via the network, from a first receiver computer, a firstchannel instruction; and (4) in response to the first channelinstruction broadcasts, via the network, to the first receiver computervideo information corresponding to either: (a) the plurality of videopackets received by the server computer that are associated with thefirst sender computer; or (b) the plurality of video packets received bythe server computer that are associated with the second sender computer.7. The system of claim 6, wherein the first channel instruction from thefirst receiver computer is based upon a selection made by a user of thefirst receiver computer from a choice of channels provided by the servercomputer to the first receiver computer.
 8. The system of claim 7,wherein the choice of channels provided by the server computer to thefirst receiver computer comprises at least a first indicia correspondingto the first sender computer and at least a second indicia correspondingto the second sender computer.
 9. The system of claim 7, wherein thechoice of channels provided by the server computer to the first receivercomputer comprises at least a first indicia corresponding to a user ofthe first sender computer and at least a second indicia corresponding toa user of the second sender computer.
 10. The system of claim 6,wherein: the server software further: (5) receives via the network, froma second receiver computer, a second channel instruction; (6) inresponse to the second channel instruction broadcasts, via the network,to the second receiver computer video information corresponding toeither: (a) the plurality of video packets received by the servercomputer that are associated with the first sender computer; or (b) theplurality of video packets received by the server computer that areassociated with the second sender computer;
 11. The system of claim 6,wherein the network comprises at least one of: (a) the Internet; and (b)an intranet.
 12. The system of claim 6, wherein the first receivercomputer communicates with the server computer using a web browser. 13.The system of claim 6, wherein the live video information correspondingto the series of images shown on the screen of the first sender computercomprises at least one of: (a) a computer desktop; (b) a computerapplication; (c) a computer game; and (d) a feed from a camera andwherein the live video information corresponding to the series of imagesshown on the screen of the second sender computer comprises at least oneof: (a) a computer desktop; (b) a computer application; (c) a computergame; and (d) a feed from a camera.
 14. The system of claim 10, wherein:the first desktop software further: (3) obtains from the first sendercomputer a plurality of packets of live audio information correspondingto the series of images shown on the screen of the first sendercomputer; and (4) provides the plurality of audio packets to the networkconnection associated with the first sender computer for broadcast viathe network; the second desktop software further: (3) obtains from thesecond sender computer a plurality of packets of live audio informationcorresponding to the series of images shown on the screen of the secondsender computer; and (4) provides the plurality of audio packets to thenetwork connection associated with the second sender computer forbroadcast via the network; the server software further: (7) receives theplurality of audio packets broadcast from the network connection of thefirst sender computer; (8) receives the plurality of audio packetsbroadcast from the network connection of the second sender computer; (9)in response to the first channel instruction broadcasts, via thenetwork, to the first receiver computer audio information correspondingto either: (a) the plurality of audio packets received by the servercomputer that are associated with the first sender computer; or (b) theplurality of audio packets received by the server computer that areassociated with the second sender computer; and (10) in response to thesecond channel instruction broadcasts, via the network, to the secondreceiver computer audio information corresponding to either: (a) theplurality of audio packets received by the server computer that areassociated with the first sender computer; or (b) the plurality of audiopackets received by the server computer that are associated with thesecond sender computer.
 15. A system for live broadcasting videoinformation from a sender computer to a receiver computer via at leastone server computer operative on a network, comprising: desktop softwarestored on a computer readable medium, wherein the desktop software isoperative on the sender computer, wherein the desktop software: (1)obtains from the sender computer a plurality of packets of live videoinformation corresponding to a series of images shown on a screen of thesender computer; (2) obtains from the sender computer a plurality ofpackets of live video information corresponding to a series of imagesfrom a camera; (3) converts the plurality of packets of live videoinformation corresponding to the series of images shown on the screenand the plurality of packets of live video information corresponding tothe series of images from the camera into a single composite videostream in the form of a series of video packets; and (4) provides theseries of video packets to a network connection associated with thesender computer for broadcast via the network; and server softwarestored on a computer readable medium, wherein the server software isoperative on the server computer, wherein the server software: (1)receives the series of video packets broadcast from the networkconnection of the sender computer; and (2) broadcasts, via the network,to the receiver computer video information corresponding to the seriesof video packets received by the server computer.
 16. The system ofclaim 15, wherein the network comprises at least one of: (a) theInternet; and (b) an intranet.
 17. The system of claim 15, wherein thereceiver computer communicates with the server computer using a webbrowser.
 18. The system of claim 15, wherein the live video informationcorresponding to the series of images shown on the screen of the sendercomputer comprises at least one of: (a) a computer desktop; (b) acomputer application; (c) a computer game; and (d) a feed from a camera.19. The system of claim 15, wherein: the desktop software further: (5)obtains from the sender computer a plurality of packets of live audioinformation corresponding to the series of images shown on the screen ofthe sender computer; and (6) provides the plurality of audio packets tothe network connection associated with the sender computer for broadcastvia the network; and the server software further: (3) receives theplurality of audio packets broadcast from the network connection of thesender computer; and (2) broadcasts, via the network, to the receivercomputer audio information corresponding to the plurality of audiopackets received by the server computer.
 20. The system of claim 15,wherein: the desktop software further: (5) obtains from the sendercomputer a plurality of packets of live audio information correspondingto the series of images from the camera; and (6) provides the pluralityof audio packets to the network connection associated with the sendercomputer for broadcast via the network; and the server software further:(3) receives the plurality of audio packets broadcast from the networkconnection of the sender computer; and (2) broadcasts, via the network,to the receiver computer audio information corresponding to theplurality of audio packets received by the server computer.